home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / asm-mn10300 / byteorder.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.1 KB  |  47 lines

  1. /* MN10300 Byte-order primitive construction
  2.  *
  3.  * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
  4.  * Written by David Howells (dhowells@redhat.com)
  5.  *
  6.  * This program is free software; you can redistribute it and/or
  7.  * modify it under the terms of the GNU General Public Licence
  8.  * as published by the Free Software Foundation; either version
  9.  * 2 of the Licence, or (at your option) any later version.
  10.  */
  11. #ifndef _ASM_BYTEORDER_H
  12. #define _ASM_BYTEORDER_H
  13.  
  14. #include <asm/types.h>
  15.  
  16. #ifdef __GNUC__
  17.  
  18. static inline __attribute__((const))
  19. __u32 ___arch__swab32(__u32 x)
  20. {
  21.     __u32 ret;
  22.     asm("swap %1,%0" : "=r" (ret) : "r" (x));
  23.     return ret;
  24. }
  25.  
  26. static inline __attribute__((const))
  27. __u16 ___arch__swab16(__u16 x)
  28. {
  29.     __u16 ret;
  30.     asm("swaph %1,%0" : "=r" (ret) : "r" (x));
  31.     return ret;
  32. }
  33.  
  34. #define __arch__swab32(x) ___arch__swab32(x)
  35. #define __arch__swab16(x) ___arch__swab16(x)
  36.  
  37. #if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
  38. #  define __BYTEORDER_HAS_U64__
  39. #  define __SWAB_64_THRU_32__
  40. #endif
  41.  
  42. #endif /* __GNUC__ */
  43.  
  44. #include <linux/byteorder/little_endian.h>
  45.  
  46. #endif /* _ASM_BYTEORDER_H */
  47.